home *** CD-ROM | disk | FTP | other *** search
- #include "stdio.h"
- #include "f2c.h"
- #define PAUSESIG 15
-
- #ifdef KR_headers
- #define Void /* void */
- #define Int /* int */
- #else
- #define Void void
- #define Int int
- #undef abs
- #undef min
- #undef max
- #include "stdlib.h"
- #include "signal.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- extern int getpid(void), isatty(int), pause(void);
- #endif
-
- extern VOID f_exit(Void);
-
- static VOID
- waitpause(Int n)
- { n = n; /* shut up compiler warning */
- return;
- }
-
- static VOID
- #ifdef KR_headers
- s_1paus(fin) FILE *fin;
- #else
- s_1paus(FILE *fin)
- #endif
- {
- fprintf(stderr,
- "To resume execution, type go. Other input will terminate the job.\n");
- fflush(stderr);
- if( getc(fin)!='g' || getc(fin)!='o' || getc(fin)!='\n' ) {
- fprintf(stderr, "STOP\n");
- #ifdef NO_ONEXIT
- f_exit();
- #endif
- exit(0);
- }
- }
-
- int
- #ifdef KR_headers
- s_paus(s, n) char *s; ftnlen n;
- #else
- s_paus(char *s, ftnlen n)
- #endif
- {
- fprintf(stderr, "PAUSE ");
- if(n > 0)
- fprintf(stderr, " %.*s", (int)n, s);
- fprintf(stderr, " statement executed\n");
- if( isatty(fileno(stdin)) )
- s_1paus(stdin);
- else {
- #ifdef MSDOS
- FILE *fin;
- fin = fopen("con", "r");
- if (!fin) {
- fprintf(stderr, "s_paus: can't open con!\n");
- fflush(stderr);
- exit(1);
- }
- s_1paus(fin);
- fclose(fin);
- #else
- fprintf(stderr,
- "To resume execution, execute a kill -%d %d command\n",
- PAUSESIG, getpid() );
- signal(PAUSESIG, waitpause);
- fflush(stderr);
- pause();
- #endif
- }
- fprintf(stderr, "Execution resumes after PAUSE.\n");
- fflush(stderr);
- return 0; /* NOT REACHED */
- #ifdef __cplusplus
- }
- #endif
- }
-